package com.sunni.mapper;

import com.sunni.entity.Employee;
import com.sunni.entity.QueryVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EmployeeMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Employee record);

    Employee selectByPrimaryKey(Long id);

    List<Employee> selectAll(QueryVo qv);

    int updateByPrimaryKey(Employee record);

    int updateState0(Long id);


    /*员工页面，添加按钮 角色列表 insert进employee_role_rel表*/
    int insertEmployeeRoleRel(@Param("eid") Long id, @Param("rid") Long rid);


    /*员工页面，编辑，角色下拉框 数据回显*/
    List<Long> selectRolesByEid(Long eid);


    /*员工页面，编辑, 修改提交数据*/
    /*1.删除 employee_role_rel表  旧的多对多映射*/
    /*2. 添加 新的多对多映射 eid<--->n个rid*/
    int deleteEmployeeRoleRelByEid(Long id);


    /*login登录 ，Controller/realm/EmployeeRealm，根据username查询有木有这个员工*/
    Employee selectEmployeeByUsername(String username);


    /*登录页面  @RequiresPermissions("employee:index")-->EmployeeRealm授权方法 根据eid查询所有role name*/
    List<String> selectRoleNamesByEid(Long id);

    /*登录页面 EmployeeController @RequiresPermissions("employee:index")-->EmployeeRealm授权方法 根据eid查询所有permission presource*/
    List<String> selectPermissionResourcesByEid(Long id);



    /*ShiroTest 修改密码  全部变成MD5加密的*/
    void updatePasswordToMd5(@Param("id") Long id, @Param("md5Password") String md5Password);
}